#pragma once
#include "vl/VLd.h"

//Handle Codes
#define LFHD 0  //done
#define RFHD 1  //done
#define LBHD 2  //done
#define RBHD 3  //done
#define C7 4    //done 
#define T10 5   //done
#define CLAV 6  //done
#define STRN 7  //done
#define RBAC 8  //done
#define LSHO 9  //done
#define LUPA 10 //done
#define LELB 11 //done
#define LFRM 12 //done
#define LWRA 13 //done
#define LWRB 14 //done
#define LFIN 15 //done
#define RSHO 16 //done
#define RUPA 17 //done
#define RELB 18 //done
#define RFRM 19 //done
#define RWRA 20 //done
#define RWRB 21 //done
#define RFIN 22 //done
#define LFWT 23 //done
#define RFWT 24 //done
#define LBWT 25 //done
#define RBWT 26 //done
#define LTHI 27 //done
#define LKNE 28 //done
#define LSHN 29 //done
#define LANK 30 //done
#define LHEE 31 //done
#define LTOE 32 //done
#define LMT5 33 //done
#define RTHI 34 //done
#define RKNE 35 //done
#define RSHN 36 //done
#define RANK 37 //done
#define RHEE 38 //done
#define RTOE 39 //done
#define RMT5 40 //done

//Handle Links
#define h_head 0
#define h_spine 1
#define h_abdomen 2
#define h_scapula_right 3
#define h_scapula_left 4
#define h_bicep_left 5
#define h_forearm_left 6
#define h_hand_left 7
#define h_bicep_right 8
#define h_forearm_right 9
#define h_hand_right 10
#define h_root 11
#define h_thigh_left 12
#define h_shin_left 13
#define h_foot_left 14
#define h_thigh_right 15
#define h_shin_right 16
#define h_foot_right 17


class Handle
{
public:
	Handle(void);
	Handle(int code, double x, double y, double z, int link);
	~Handle(void);
	void setCode(int);
	void draw(void);
	void draw(float size);
	Vec4d position;
	void setC(Vec4d &_c);
	Vec4d getC(void);
private:
	int link;
	int code;
	Vec4d c;
};
